package com.repair.api.pay.service;

import com.repair.api.pay.request.PayQueryPageRequest;
import com.repair.api.pay.request.PayQueryRequest;
import com.repair.api.pay.request.PayRefundRequest;
import com.repair.api.pay.request.PaymentAddRequest;
import com.repair.api.pay.request.param.PayQueryParam;
import com.repair.api.pay.request.param.PaymentAddParam;
import com.repair.api.pay.response.PayAddResponse;
import com.repair.api.pay.response.PayQueryResponse;
import com.repair.api.pay.response.PayRefundResponse;
import com.repair.api.pay.response.vo.PaymentInfoVO;
import com.repair.base.response.PageResponse;

/**
 * @author chunyu
 * @since 2024/10/16,19:27
 */
public interface PaymentFacadeService {


    /**
     * 添加支付单
     * @param payRequest 请求参数
     * @return
     */
    PayAddResponse<PaymentInfoVO> addPayment(PaymentAddRequest<PaymentAddParam> payRequest);

    /**
     * 退款
     * @param payRefundRequest 请求参数
     * @return
     */
    PayRefundResponse<Boolean> refund(PayRefundRequest payRefundRequest);

    /**
     * 获取支付单
     * @param request 请求参数
     */
    PageResponse<PaymentInfoVO> getPaymentInfoList(PayQueryPageRequest<PayQueryParam> request);

    /**
     * 获取支付单详情
     * @param request 请求参数
     */
    PayQueryResponse<PaymentInfoVO> getPaymentDetail(PayQueryRequest request);

}
